To transmit a data flow from a transmitter device to a receiver device via a network with a packet-based transmission protocol, in particular via the TCP/IP-based internet, network access links in the form of ISDN links, WLAN radio links, telephone lines or the like, are generally used to connect the transmitter device and the receiver device. The transmitter device distributes the data flow into consecutively numbered data packets and transmits these one after the other via the network access link to the network. In the network, the data packets are transferred into the direction of the receiver device where they are removed from the network via the network access link on the side of the receiver device and routed to the receiver device. There, the data packets are again lined up one after the other so as to obtain the data flow sent.
The data protocols generally accepted in practice for this type of transmission of a data flow, in particular the Transport Connection Protocol (TCP) built upon the Internet Protocol (IP), invariably take into account the possibility of the loss of data packets within the network. It is therefore the responsibility of the receiver device to newly request data packets that did not arrive and to acknowledge the receipt of data packets to the transmitter device. It is assumed that data packets are lost if data packets arriving one after the other at the receiver device are not consecutively numbered. Thus, for example, if a data packet numbered as number 5 arrives after a data packet numbered as number 2, it is assumed that the data packets No. 3 and 4 have been lost within the network. Therefore, after receipt of data packet No. 5, these data packets will again be requested by the receiver device from the transmitter device. In this manner, it is ensured that the complete data flow is transmitted.
This peculiarity of the transmission protocols used, however, leads to problems if a transmitter device (or a receiver device) is to be linked to the network simultaneously via a plurality of network access links so as to increase the useful bandwidth and the availability. In this case, the access links are “bundled,” i.e. from the point of view of the transmitter device, combined to a single virtual link.
The data packets are subsequently distributed to a plurality of network access links to as to use the network access links at the same time. If, per data packet, the bundled network access links are identical with respect to bandwidth and transmission time and, in addition work with a synchronous clock generator, as is the case, for example, for the so-called ISND channel bundling, the sequence in which the data packets arrive in the receiver device can be controlled nearly as well as when a single network access link is used.
If, on the other hand, the bundled network access links differ with respect to bandwidth and/or transmission time and/or if no synchronous clock generator is used, it is not possible to ensure that the data packets arrive in the correct sequence in the receiver device.
For example, if a network access link with a transmission time of 100 ms and an additional network access link with a transmission time per data packet of 250 ms are bundled, the data packets transmitted via the first data link will always arrive more rapidly in the receiver device than the data packets transmitted via the second network access link. If the data flow in the transmitter device, for example, is distributed to the network access links in such a manner that the first data packet is transmitted via the first network access link, the second data packet is transmitted via the second network access link, the third packet is transmitted via the first network access link, the fourth packet is transmitted via the second network access link, etc., the data packets, due to the differences in the transmission time, will arrive in the receiver device as follows:                After 100 ms: The first data packet arrives via the network access link 1.        After 200 ms: The third data packet arrives via the network access link 1.        After 250 ms: The second data packet arrives via the network access link 2.        After 300 ms: The fifth data packet arrives via the network access link 1.        After 400 ms: The seventh data packet arrives via the network access link 1, etc.        
Thus, because of the different transmission times in the two network access links, data packets in the first network access link will overtake packets in the second network access link. As a result, the data packets will arrive in the wrong sequence in the receiver device. The wrong sequence leads to a considerable number of repeated requested data packets. In addition, the transmitter device reacts to such new requests and or to the absence of receipt acknowledgments by slowing down the data transmission rate.
In addition, in practice, the transmission times of the network access links will vary so that the sequence of the receipt of the data packets is unpredictable. This is the case even if the theoretical transmission time of the data packets in the network access links were to be nearly identical but the bandwidths of the bundled network access links are different. The reason is that, because of the intermediate buffer, the available bandwidth influences the actual transmission time of a data packet as a function of the capacity utilization. Thus, in practice, today's broadband internet access links, e.g., DSL, are implemented in the form of a so-called “shared medium” in which a plurality of participants of a local network share the available bandwidth in the distribution network. This leads to continuously fluctuating line properties with respect to the bandwidth and thus the transmission time, as a result of which the distribution of data packets to a plurality of network access links necessarily leads to incorrectly sorted data packets in the receiver device.
Therefore, in practice, connecting a second network access link with the same bandwidth does not lead to the theoretical doubling of the useful bandwidth. Instead, the useful bandwidth is, if at all, only marginally increased. Frequently, failures and considerable delays in the data transfer occur as a result of the large number of repeated requests for data packets and by the slowdown of the data transmission rate.
The obvious approach, i.e., to newly re-sort the data packets in the receiver device based on the sequence number involved, is not practicable. Since the IP protocol does not guarantee delivery, i.e., since data packets can be lost, such an approach would collide with the recognition of losses of data packets. If, after the first data packet, the receiver receives next the third packet instead of the second data packet, it is impossible for the receiver device to determine whether this happened because the third data packet has overtaken the second packet, i.e., whether “packet reordering” took place along the transport path, or whether the second data packet has been lost en route and therefore will not arrive without the relevant repeated request.
As a result, the prior art can offer only two practicable approaches for bundling a plurality of network access links.
According to the first approach, only network access links that have exactly the same properties with respect to bandwidth and transmission time are bundled. In this case, the bundled network access links work with a synchronous clock generator. This is the case, e.g., in ISDN channel bundling. This ensures that the data packets actually arrive in the correct sequence in the receiver device.
According to the second approach, different network access links are bundled; however, per data flow to be transmitted, only one of the bundled network access links is used. n available links can therefore be fully utilized only if at least n data flows independent of one another exist simultaneously and if the number of data flows can be divided without remainder by the number of the network access links.